package fun.qu_an.minecraft.mini_games_helper.client.mixin.sodium;

import me.jellysquid.mods.sodium.client.gui.options.OptionImpl;
import me.jellysquid.mods.sodium.client.gui.options.binding.OptionBinding;
import me.jellysquid.mods.sodium.client.gui.options.control.Control;
import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Mutable;
import org.spongepowered.asm.mixin.gen.Accessor;
import org.spongepowered.asm.mixin.gen.Invoker;

@Mixin(OptionImpl.class)
public interface OptionImplAccessor {
	@Accessor(remap = false)
	@Final
	@Mutable
	void setControl(Control<?> control);

	@Accessor(remap = false)
	@Final
	@Mutable
	Control<?> getControl();

	@Accessor(remap = false)
	@Final
	@Mutable
	void setName(Text name);

	@Accessor(remap = false)
	@Final
	@Mutable
	Text getName();

	@Accessor(remap = false)
	@Final
	@Mutable
	void setTooltip(Text tooltip);

	@Accessor(remap = false)
	@Final
	@Mutable
	Text getTooltip();

	@Accessor(remap = false)
	@Final
	@Mutable
	void setBinding(OptionBinding<?, ?> control);

	@Accessor(remap = false)
	@Final
	@Mutable
	OptionBinding<?, ?> getBinding();

	@Accessor(remap = false, value = "enabled")
	@Mutable
	void setAvailable(boolean b);
}
